package com.jrx.anytxn.param.mapper.ext;

import com.jrx.anytxn.common.annotation.ParamTuningAnnotation;
import com.jrx.anytxn.param.entity.PmMerchantTable;
import com.jrx.anytxn.param.mapper.base.PmMerchantTableMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商户mapper扩展
 */
public interface ExtPmMerchantTableMapper extends PmMerchantTableMapper {

    /**
     * 根据租户及商户id查询商户信息
     *
     * @param tenantId 租户id
     * @param merchantId 商户id
     * @return 商户信息
     */
    PmMerchantTable selectByTenantIdAndMerchantId(@Param("tenantId") String tenantId, @Param("merchantId") String merchantId);

    /**
     * 根据租户查询商户信息
     *
     * @param tenantId 租户id
     * @return 商户列表
     */
    List<PmMerchantTable> selectByTenantId(@Param("tenantId") String tenantId);


    PmMerchantTable selectByMerchantIdAndOrgIdAndTenantId(@Param("merchantId") String merchantId, @Param(
            "organizationId") String organizationId, @Param("tenantId") String tenantId);

    /**
     * 修改商户信息
     *
     * @param pmMerchantTable 商户实体
     * @return 修改条数
     */
    @ParamTuningAnnotation
    int updateByTenantIdAndMerchantId(PmMerchantTable pmMerchantTable);

    /**
     * 根据租户id及商户id删除商户
     *
     * @param tenantId 租户id
     * @param merchantId 商户id
     * @return 删除条数
     */
    @ParamTuningAnnotation
    int deleteByTenantIdAndMerchantId(@Param("tenantId") String tenantId, @Param("merchantId") String merchantId);
}